package com.knowledge.model.pojo;

import io.swagger.annotations.ApiModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel("接口返回结果模型")
public class Result {
    //状态码返回状态内容
    private Integer code; //成功暂定状态200，失败状态码暂定400
    //代码提示信息的内容
    private String msg;
    //返回的数据内容
    private Object data;


    /**
     * 空参数，什么都不传递，
     * @return
     */
    public static Result success(){
        return new Result(ResultCode.RC200.getCode(), ResultCode.RC200.getMessage(), null);
    }

    /**
     * 传递成功信息，自定义，数据不传递
     * @param msg
     * @return
     */
    public static Result success(String msg){
        return new Result(ResultCode.RC200.getCode(),msg,null);
    }

    /**
     * 只传递数据，默认状态和内容
     * @param data
     * @return
     */
    public static Result success(Object data){
        return new Result(ResultCode.RC200.getCode(),ResultCode.RC200.getMessage(), data);
    }

    /**
     * 传递提示信息和对象数据的内容
     * @param msg
     * @param data
     * @return
     */
    public static Result success(String msg,Object data){
        return new Result(ResultCode.RC200.getCode(),msg,data);
    }

    /**
     * 没有传递任何参数
     * @return
     */
    public static Result error(){
        return new Result(ResultCode.RC400.getCode(), ResultCode.RC400.getMessage(), null);
    }

    /**
     * 传递错误信息提示
     * @param msg
     * @return
     */
    public static Result error(String msg){
        return new Result(ResultCode.RC400.getCode(),msg,null);
    }

    /**
     * 传递自定义的状态码和消息提示
     * @param code
     * @param msg
     * @return
     */
    public static Result error(Integer code,String msg){
        return new Result(code,msg,null);
    }
}
